package cn.ztc.tool.redis.template.test.enums;

import cn.ztc.tool.enums.UnrepeatableField;

/**
 * @author 张天赐
 */
public interface CodeFieldInterface<T extends Enum<T>> extends UnrepeatableField<T, Integer> {

    /**
     * 返回设定值
     *
     * @return code
     */
    abstract Integer getCode();

    /**
     * 获取拓展字段的值
     *
     * @return 拓展字段的值
     */
    @Override
    default Integer getValue() {
        return getCode();
    }

    /**
     * @param code code
     * @return 枚举
     */
    default T getByCode(Integer code) {
        return getMatchItem(code);
    }
}
